home *** CD-ROM | disk | FTP | other *** search
-
- QLIB5 advanced function library for Microsoft BASIC compilers
- Copyright (C) 1988-1992 Douglas Herr ■ all rights reserved
-
- WHAT IS QLIB?
-
- QLIB is a library of subroutines CALL-able from QuickBASIC 4.0, 4.5
- QBX or BC7, providing the BASIC programmer with many additional
- functions and commands, along with un-BASIC-like speed and power.
-
- WHY USE QLIB?
-
- QuickBASIC and BC7 represent an enormous leap in BASIC programming over
- interpreted BASICA or GWBASIC, and is a language that many programmers
- already know. However, many programmers also know that many compiled
- BASIC commands are not really quick, can be extremely cumbersome, and/or
- will eat tremendous amounts of memory. QLIB subroutines are written in
- assembly language for maximum speed and compact size. QLIB subroutines
- can be up to 10 times faster than comparable BASIC commands and can
- reduce the size of your .EXE files dramatically. QLIB's subroutines also
- provide many functions which are impossible with BASIC alone.
-
- Ideas for these routines come from a wide variety of sources. If you want
- to see additional routines, let me hear about it. In this way, QLIB's
- users can affect the direction QLIB takes.
-
- DISCLAIMER
-
- Each QLIB routine has been tested extensively, but since I cannot foresee
- every possible use or abuse of QLIB, I cannot be held responsible for any
- damages resulting from its use. I have used QLIB with IBM PC/XT, PC/AT,
- PS/2 Model 30, 50z, Leading Edge model D, Zenith SuperSport 286,
- and with XT, 286, 386sx, 386-33 and 486-25 clones with PC/MS-DOS
- versions 3.1 through 5.0. Video systems tested include IBM EGA
- with 64k, Paradise EGA 480, Everex Micro Enhancer EGA, IBM's MCGA
- and VGA built into the PS/2s, Hercules Graphics Card Plus, Hercules
- InColor, cheap Hercules clones, IBM's Monochrome Display Adapter, and
- a few SuperVGAs. I have tested the subroutines with QuickBASIC versions
- 4.0b and 4.5, with BC 7.0 and with BC7's QuickBASIC extended (QBX).
-
-
- DISTRIBUTION and REGISTRATION
-
- QLIB is user-supported shareware, NOT public domain software. The QLIB
- files you have received are the complete QLIB package, usable within the
- QuickBASIC or QBX editor to develop programs, and linkable with your
- object code to create stand-alone .EXE programs. These files may be
- distributed freely in un-altered form, but if you use QLIB in your BASIC
- programs, you are expected to register.
-
- The advantages of registering are many:
-
- Registered users receive the latest version available when they register
- and may upgrade at any time for the paltry fee of $10.00.
-
- Registered users will receive the huge model library QLIBH.LIB as well
- as the medium model QLIB.LIB
-
- Registered users may request custom modifications to any of QLIB's
- subroutines (but I will not guarantee I can make all modifications!).
-
- Programs linked with registered versions of QLIB will be slightly smaller
- than those linked with the distribution version, and will not contain my
- copyright notice.
-
- Your registration fee supports my efforts, and encourages me to continue
- development of QLIB.
-
- No royalties are required and registration costs only $25, and you will
- have confidence that you are using a version of QLIB which has not been
- altered by others.
-
- Register by sending $25 to:
-
- Douglas R. Herr
- P. O. Box 207
- Sacramento, CA 95812
- U. S. A.
-
- telephone (916) 721-8762
- CompuServe 71247,3542
-
-
- Please specify which size disk you prefer, and which version you are
- registering (QLIB for QuickBASIC 4.x or BC6, or QXLIB for BC7/QBX).
- If you want both QLIB and QXLIB, please add $10. QLIB 4.3 for older
- QuickBASIC compilers is also $25. Assembly-language source code for
- any of the libraries is an additional $25.
-
- Any questions or problems should be sent to me at the above address.
- Please include a stamped, self-addressed envelope if you are not a
- registered user.
-
- QLIB is a rapidly evolving library, so it is likely that by the time you
- register there will be several additional routines or refinements to
- existing routines available.
-
- HOW DO I USE QLIB?
-
- Beginning with version 5.0, QLIB has been optimized for QuickBASIC 4.0,
- 4.5 and BC7. If you are using an earlier version of QuickBASIC, I can
- supply you with QLIB version 4.3, which includes most of the
- subroutines in QLIB5, but in a format usable by earlier QuickBASIC
- versions. There are two versions of the QLIB5 library: QLIB.LIB
- for QuickBASIC 4.0 and QuickBASIC 4.5, and QXLIB.LIB is for BC7 and QBX.
- QLIB.LIB should also work with BC6.
-
- QLIB may be used with your BASIC compiler by copying QLIB.BI and
- QLIB.LIB (or QXLIB.LIB) to your BASIC directory. You will need to
- make a .QLB version of QLIB to use QLIB with the QuickBASIC or QBX
- editor. You will need the BQLB4x.LIB or QBXQLB.LIB libraries supplied
- by Microsoft with your compiler.
-
- Make your .QLB file this way:
-
- QuickBASIC 4.0: LINK /Q /SE:200 QLIB.LIB,,nul,BQLB40.LIB;
- QuickBASIC 4.0b: LINK /Q /SE:200 QLIB.LIB,,nul,BQLB41.LIB;
- QuickBASIC 4.5: LINK /Q /SE:200 QLIB.LIB,,nul,BQLB45.LIB;
- QBX: LINK /Q /SE:200 QXLIB.LIB,,nul,QBXQLB.LIB;
-
- If you are using QuickBASIC 4.0 or 4.0b, LINK will give you an error
- message related to QLIB's use of the 8087 emulator. This error message
- is expected. The practical effect of this error is that QLIB
- subroutines which use BASIC's 8087 emulator will not work within the
- QuickBASIC editor enviornment if you do not have a math coprocessor.
- The emulator will be linked properly when you create your .EXE files.
-
-
- QuickBASIC 4.0b's BQLB41.LIB library can be patched to eliminate the
- error message (this may also work with QB 4.0's BQLB40.LIB):
-
- Step 1: extract object files from BCOM41.LIB
- C:\LIB BCOM41 *BFPSIG *FIXUPS *EMOEM *PIEMR;
-
- Step 2: add these object files to BQLB41
- C:\LIB BQLB41 +BFPSIG +FIXUPS +EMOEM +PIEMR,BQLB42;
-
- Step 3: Make a new QLIB.QLB
- C:\LINK /Q /SE:160 QLIB.LIB,,NUL,BQLB42;
-
- I have not had the 8087 emulation problem with BQLB45.LIB or with
- QBXQLB.LIB. This patch seems to work within the QuickBASIC editor
- but since 90% of the PCs I've used have math coprocessors, I can't
- be certain. Your experience with your own system is your best guide.
-
-
-
- To load QLIB with the QuickBASIC editor, use the command
-
- QB /L QLIB.QLB
-
- or for QBX, use:
-
- QBX /L QXLIB.QLB
-
- To use QLIB's functions, you MUST include the INCLUDE file QLIB.BI in
- your source code. QLIB.BI changes BASIC's default data type from
- SINGLE to INTEGER, and also contains the declarations for QLIB's
- functions. QLIB's functions MUST be declared before they can be used,
- and the INTEGER default data type is required. You should change
- the default data type to INTEGER whether you use QLIB or not, so your
- programs will be smaller and faster. Use SINGLE and DOUBLE data types
- only when nessesary. The documentation for QLIB's functions shows
- you how to use the INCLUDE file.
-
- QLIB.BI has the function declarations for ALL of QLIB's functions.
- You should use this as a template for the function declarations for
- your programs. If you compile your programs using an un-altered
- QLIB.BI file, all of the functions declared in the INCLUDE file
- may be included in your .EXE program whether the program uses the
- functions or not.
-
- REGISTERED USERS: note that QLIBH.BI should be used in place of QLIB.BI
- if you are using the huge model library QLIBH.LIB.
-
-
- Compile your source code using
-
- BC yourprog /O;
-
- (many QLIB subroutines require the /O option)
-
- Link QLIB with your object files with
-
- LINK /EX /NOE yourprog,,NUL,QLIB.LIB;
- or LINK /EX /NOE yourprog,,NUL,QXLIB.LIB;
-
- You may compile your source code and link to QLIB.LIB from within the
- QuickBASIC editor, but QuickBASIC may include the ENTIRE QLIB.LIB file
- in your .EXE file, whether you use any subroutines or not. This is not
- the way to keep your program small! Link from the command line as I have
- shown and your .EXE file will include only the subroutines you need.
-
- QLIB's documentation has been divided into several files in order to keep
- each one down to a managable size. The .DOC files are:
-
- INTRO.DOC this file
- INPUT.DOC keyboard input subroutines
- COMPLEX.DOC COMPLEX data subroutines
- DATA.DOC data manipulation subroutines
- DISK.DOC disk and file management subroutines
- EMS.DOC LIM Expanded Memory subroutines
- SYSTEM.DOC subroutines which determine PC equipment or status
- GRAPHICS.DOC subroutines for graphics
- SOLVE.DOC solutions for common mathematical equations
- VIDEO.DOC video input and output subroutines (text modes)
- UPDATE.DOC important information if you are upgrading from an
- earlier version of QLIB
-
- Note: the other files which make up the QLIB5 package are:
-
- QLIB.LIB QuickBASIC link library
- QXLIB.LIB BC7 link library
- QLIB.BI INCLUDE file for QuickBASIC and BC7/QBX
-
-
- In the spirit of QB 4.5's on-line documentation, each of the .DOC
- files may be loaded into the QuickBASIC or QBX editor (use DOCUMENT
- switch), from which you may cut and paste into your source code to
- your heart's content. Hard copy of the documentation may be easily
- (and inexpensively) obtained by using your printer.
-
- If you are upgrading from a version of QLIB before 5.0, read ALL of
- the new .DOC files completely. Many subroutines have been changed to
- functions, and others have been replaced by new subroutines. While
- this may cause you some inconvenience in the short run, doing this
- allowed me to provide higher performance and smaller code.
-
- BASIC DATA TYPES
-
- QLIB's documentation is filled with reference to data of the %, &,
- !, # and $ types. If you already know what these mean, you may skip
- this section, as long as you pay attention to the data types required
- by QLIB's subroutines. If you are not familiar with BASIC's data types,
- by all means read your manual.
-
- Even if you don't use QLIB, the data types you use in your programs
- will affect the speed and size of your programs. In general, you
- should use INTEGER (%) data types where possible, and DOUBLE (#)
- types only where nessesary.
-
- BASIC assumes that all data is SINGLE (!) unless otherwise declared.
- You can change the default data type to INTEGER with the command
-
- DEFINT A-Z
-
- I put this at the beginning of all my programs to improve speed, reduce
- size and to eliminate the need for those silly % signs. This statement
- is part of the INCLUDE file QLIB.BI.
-
- When using QLIB subroutines, pay particular attention to the data types
- required by each subroutine. If you use the wrong data types, it is
- likely (though not certain) that you will end up with garbage.
-
-
- QLIB supports a COMPLEX data type consisting of paired SINGLE data.
- Each COMPLEX value is 8 bytes. COMPLEX data arrays should be allocated
- with BASIC's DIM statement as DOUBLE data. Once QLIB has established the
- values of the COMPLEX data, BASIC in general will not interpret the data
- correctly. Exception: for complex conjugates, you can use BASIC.
-
- if c0# is a QLIB COMPLEX data type, this BASIC statement will result in
- c1# = complex conjugate of c0#:
-
- c1# = -c0#
-
- Subroutines specific to the COMPLEX data type are described in
- COMPLEX.DOC.
-
-
- SUBROUTINE REFERENCE
-
- Documentation for QLIB's subroutines can be found in the following .DOC
- files:
-
- Name description .DOC file
-
- AddINTArray add a constant to an integer array DATA.DOC
- AddLNGArray add a constant to a long integer array DATA.DOC
- AddSNG adds two SINGLE values, returning error flag DATA.DOC
- AddDBL adds two DOUBLE values, returning error flag DATA.DOC
- AllocMem allocates memory for QLIB from DOS memory area DATA.DOC
- ANSIColor determines color attribute used by ANSI.SYS VIDEO.DOC
- APrint Print on the screen using ANSI device driver VIDEO.DOC
- APrintN like APrint, but advances cursor to next line VIDEO.DOC
- APrintT APrint plus tab on same line VIDEO.DOC
- ASCII returns ASCII code of a string, avoiding error DATA.DOC
- BigPrint print string on screen in big characters VIDEO.DOC
- Bit2INT converts a bit pattern to an integer DATA.DOC
- BitBlockBytes graphics screen manipulation GRAPHICS.DOC
- BitBlockRestore restore graphics screen saved earlier GRAPHICS.DOC
- BitBlockSave save part of graphics screen GRAPHICS.DOC
- BitPlaneRestore restore graphics plane saved earlier GRAPHICS.DOC
- BitPlaneSave save part of a plane of graphics screen GRAPHICS.DOC
- BitPlaneBytes calculates bytes required for BitPlaneSave GRAPHICS.DOC
- BlockFrame BIOS routine to frame a block of the screen VIDEO.DOC
- BPrint BIOS print on screen VIDEO.DOC
- BPrintL BIOS print, lower case VIDEO.DOC
- BPrintU BIOS print, upper case VIDEO.DOC
- C2F converts degrees Celcius to Farenheit SOLVE.DOC
- CapsOFF force capslock toggle off SYSTEM.DOC
- CapsON force capslock toggle on SYSTEM.DOC
- CircleAspect DrawCircle options GRAPHICS.DOC
- ClearBlock BIOS clear portion of screen VIDEO.DOC
- ClearEOL clears a row from cursor to edge of screen VIDEO.DOC
- ClearKBD clears the keyboard 'type ahead' buffer INPUT.DOC
- ClearView clear portion of Graphics screen GRAPHICS.DOC
- Clock prints a time display on text-mode screens VIDEO.DOC (b)
- ClrScreen quickly clear entire screen VIDEO.DOC
- ColorAttr calculate color attibute VIDEO.DOC
-
- CombineINTArray Add one array to another (or subtract) DATA.DOC
- CombineLNGArray Add one array to another (or subtract) DATA.DOC
- CombineSNGArray Add one array to another (or subtract) DATA.DOC
- CombineDBLArray Add one array to another (or subtract) DATA.DOC
- CopyFile copy a file to another disk or directory DISK.DOC
- CopyMem copies a block of memory DATA.DOC
- CPX2Real splits COMPLEX value to real & imaginary parts COMPLEX.DOC
- CPXAdd add two COMPLEX values COMPLEX.DOC
- CPXDiv divides COMPLEX values COMPLEX.DOC
- CPXMul multiplies two COMPLEX values COMPLEX.DOC
- CPXNeg returns negative of a COMPLEX value COMPLEX.DOC
- CPXNegI returns complex conjugate of a COMPLEX values COMPLEX.DOC
- CPXNegR returns negative complex conjugate COMPLEX.DOC
- CubeFitF4 use Least Squares to fit a curve to coordinates SOLVE.DOC
- CubeFitF8 use Least Squares to fit a curve to coordinates SOLVE.DOC
- CubeFitI2 use Least Squares to fit a curve to coordinates SOLVE.DOC
- CubeFitI4 use Least Squares to fit a curve to coordinates SOLVE.DOC
- CursorColor enables InColor color palette, sets cursor color VIDEO.DOC
- CursorOFF makes text cursor invisible VIDEO.DOC
- CursorON places cursor on text screen VIDEO.DOC
- Date2LNG compresses a date to a long integer for storage DATA.DOC
- DayName returns ASCII day name given day number 1-7 DATA.DOC
- DayOfWeek returns the day of week for any given date DATA.DOC
- DelArray2 deletes one element from an array of 2-byte data DATA.DOC
- DelArray4 deletes one element from an array of 4-byte data DATA.DOC
- DelArray8 deletes one element from an array of 8-byte data DATA.DOC
- DelVSTRArray deletes one element from a string array DATA.DOC
- DBL2STR DOUBLE-to-string conversion with formatting DATA.DOC
- DGeyKey DOS keyboard input; may be redirected INPUT.DOC
- DOSError returns MS-DOS error code for last DOS function SYSTEM.DOC
- DrawBox draws a box on a graphics screen GRAPHICS.DOC
- DrawCircle draws a circle on graphics screen GRAPHICS.DOC
- DrawLine draws a line on graphics screen GRAPHICS.DOC
- DriveReady traps "drive not ready" errors DISK.DOC
- DriveSpace determine free and total space on a disk DISK.DOC
-
- EGAinfo determine EGA configuration SYSTEM.DOC
- EMSclose closes an EMS "file" EMS.DOC
- EMSopen opens an EMS "file" EMS.DOC
- EMSready determines if EMS is installed EMS.DOC
- EMSRead copies data from an EMS "file" to an array EMS.DOC
- EMSRead1 copies one byte from an EMS "file" EMS.DOC
- EMSRead2 copies two bytes from an EMS "file" EMS.DOC
- EMSRead4 copies four bytes from an EMS "file" EMS.DOC
- EMSRead8 copies eight bytes from an EMS "file" EMS.DOC
- EMSsize determines free and available EMS memory EMS.DOC
- EMSversion determines EMS software version EMS.DOC
- EMSWrite copies data to an EMS "file" from an array EMS.DOC
- EMSWrite1 copies a 1-byte value to EMS memory EMS.DOC
- EMSWrite2 copies a 2-byte value to EMS memory EMS.DOC
- EMSWrite4 copies a 4-byte value to EMS memory EMS.DOC
- EMSWrite8 copies an 8-byte value to EMS memory EMS.DOC
- EXEName returns full drive and path name of program SYSTEM.DOC
- Exist see if a file or subdirectory exists DISK.DOC
- F2C converts degrees Farenheit to Celcius SOLVE.DOC
- Factorial calculates the factorial of an integer SOLVE.DOC
- FFlush flushes DOS file buffer DISK.DOC
- FClose close a file opened by FCreate or FOpen DISK.DOC
- FCreate creates a new file for fast binary I/O DISK.DOC
- FileBegin re-sets the file pointer to the start of a file DISK.DOC
- FileCount counts the number of files matching a template DISK.DOC
- FileEnd sets the file pointer at the end of a file DISK.DOC
- FileMovPTR moves the pointer for a file opened by FileOpen DISK.DOC
- FOpenR opens an existing file for fast binary input DISK.DOC
- FOpenRW opens an existing file for fast binary I/O DISK.DOC
- FOpenW opens an existing file for fast binary output DISK.DOC
- FileRead fast binary input from a file opened by FileOpen DISK.DOC
- FileRead1 fast byte input from a file opened by FileOpen DISK.DOC
- FileRead2 fast 2-byte input from a file opened by FileOpen DISK.DOC
- FileRead4 fast 4-byte input from a file opened by FileOpen DISK.DOC
- FileRead8 fast 8-byte input from a file opened by FileOpen DISK.DOC
- FileSetPTR set the file pointer position for a file DISK.DOC
- FileWrite fast binary output to a file opened by FileOpen DISK.DOC
- FileWrite1 fast byte output to a file opened by FileOpen DISK.DOC
- FileWrite2 fast 2-byte output to a file opened by FileOpen DISK.DOC
- FileWrite4 fast 4-byte output to a file opened by FileOpen DISK.DOC
- FileWrite8 fast 8-byte output to a file opened by FileOpen DISK.DOC
-
- FillArea fills an irregular region on graphics screen GRAPHICS.DOC
- FillBox fills a box on graphics screen GRAPHICS.DOC
- FillEOL fills from cursor position to edge of screen VIDEO.DOC
- FillPattern establish fill pattern GRAPHICS.DOC
- Find1 finds 1-byte value in an array DATA.DOC
- Find2 finds 2-byte value in an array DATA.DOC
- Find4 finds 4-byte value in an array DATA.DOC
- Find8 finds 8-byte value in an array DATA.DOC
- FindFileAttr FindFirstMatch/FindNextMatch option DISK.DOC
- FindFileDate FindFirstMatch/FindNextMatch option DISK.DOC
- FindFileName FindFirstMatch/FindNextMatch option DISK.DOC
- FindFileSize FindFirstMatch/FindNextMatch option DISK.DOC
- FindFileTime FindFirstMatch/FindNextMatch option DISK.DOC
- FindFirstMatch find first matching file with wildcards DISK.DOC
- FindMONO determine if a monochrome monitor is present SYSTEM.DOC
- FindNextMatch find next file with wildcards DISK.DOC
- FLoad quickly loads a disk file into far memory DISK.DOC
- Floppies determine number of floppy drives installed SYSTEM.DOC
- FPrimeF4 calculate the differential of a polynomial SOLVE.DOC
- FPrimeI2 calculate the differential of a polynomial SOLVE.DOC
- FreeMem releases memory block allocated by QLIB DATA.DOC
- FSize determine size of a file opened by QLIB DISK.DOC
- FValue calculate future value of contant cash flow SOLVE.DOC
- GCenter centers a string on a graphics screen GRAPHICS.DOC
- GCenterX centers a string on a graphics screen GRAPHICS.DOC
- GCopy copies one page of Graphics memory to another GRAPHICS.DOC
- GCursor puts a text cursor on graphics screen GRAPHICS.DOC
- GetANSI determine ANSI screen color VIDEO.DOC
- GetCPU determine processor installed SYSTEM.DOC
- GetCRT determine video system SYSTEM.DOC
- GetDOSVer determine DOS version installed SYSTEM.DOC
- GetDot determine pixel status on graphics screen GRAPHICS.DOC
- GetDRIVE determine default drive DISK.DOC
- GetFileAttr determine file attributes DISK.DOC
- GetKBDToggle determine status of key toggles and shift keys SYSTEM.DOC
- GetKey returns first key pressed INPUT.DOC
- GetPOS determine cursor position VIDEO.DOC
- GetSpeed determine if CPU is operating at fast speed SYSTEM.DOC
- GetSUB determine default subdirectory DISK.DOC
- GetTime returns system time to program DATA.DOC
- GetView determine current graphics viewport GRAPHICS.DOC
- GLineEdit line editor for graphics screen GRAPHICS.DOC
- GLoad copies a graphics image file to video memory GRAPHICS.DOC
- GMouse initialize alternate graphics mouse cursor GRAPHICS.DOC
- GPage combines UseGPage and ShowGPage subroutines GRAPHICS.DOC
- GPlaneSize calculates array size for GPlane subroutines GRAPHICS.DOC
- GPrint print text on a graphics screen GRAPHICS.DOC
- GPrintDOWN text on graphics screen from top to bottom GRAPHICS.DOC
- GPrintUP text on graphics screen from bottom to top GRAPHICS.DOC
- GPrintX expanded text on graphics screen GRAPHICS.DOC
- GPrint2X expanded text on graphics screen GRAPHICS.DOC
- GPrintDOWNX expanded text on graphics screen GRAPHICS.DOC
- GPrintDOWN2X expanded text on graphics screen GRAPHICS.DOC
- GPrintUPX expanded text on graphics screen GRAPHICS.DOC
- GPrintUP2X expanded text on graphics screen GRAPHICS.DOC
- GPullDown pull-down menu system for graphics modes INPUT.DOC (b)
- GSave saves a graphics screen as a file GRAPHICS.DOC
- GUCursor puts underscore cursor on graphics screen GRAPHICS.DOC
-
- HGraph establish Hercules graphics mode GRAPHICS.DOC
- HGraph0 same as HGraph, but clears only page 0 GRAPHICS.DOC
- HideMouse make mouse cursor invisible INPUT.DOC
- HideGMouse make alternate graphics mouse invisible INPUT.DOC
- HRam8043 switch to RamFont 43-row mode VIDEO.DOC
- HRam9025 switch to RamFont 90-column mode VIDEO.DOC
- HRam9043 switch to RamFont 90-column, 43-row mode VIDEO.DOC
- HScroll quick horizontal scroll of text screen VIDEO.DOC
- HText return to text mode from Hercules graphics GRAPHICS.DOC
- InsArray2 inserts 2-byte data in an array DATA.DOC
- InsArray4 inserts 4-byte data in an array DATA.DOC
- InsArray8 inserts 8-byte data in an array DATA.DOC
- InsVSTRArray insert a string in a variable-length string array DATA.DOC
- InsertOFF force insert mode off SYSTEM.DOC
- InsertON force insert mode on SYSTEM.DOC
- InsertString insert one string in another, at any position DATA.DOC
- InString INSTR-like function DATA.DOC
- InStringCount counts number of times a pattern is in a string DATA.DOC
- InString2 INSTR-like function, case-insensitive DATA.DOC
- InStringR Reverse INSTR-like function DATA.DOC
- InString2R Reverse INSTR-like function, case-insensitive DATA.DOC
- INT2SNG integer to floating point conversion DATA.DOC
- INT2STR integer to string conversion with formatting DATA.DOC
- IsAlpha determines if a key code is A-Z or a-z INPUT.DOC
- IsDigit determines if a key code is 0-9 INPUT.DOC
- IsLower determines if a key code is a-z INPUT.DOC
- IsSEVGA determines if a Super EGA/VGA is installed SYSTEM.DOC
- IsUpper determines if a key code is A-Z INPUT.DOC
- KBDType determine if an enhanced keyboard is present SYSTEM.DOC
- KeyFilter returns selected keys given input key code INPUT.DOC
- KeyIfWaiting returns key if one is waiting in keyboard buffer INPUT.DOC
- KeyOrButton returns first keyboard or mouse input INPUT.DOC
- KeyRate sets keyboard typematic rate (AT and PS/2) SYSTEM.DOC
- KeyWaiting determines if a key has been pressed INPUT.DOC
- KillFile deletes file, with error trapping DISK.DOC
- KillSUB deletes subdirectory, with error trapping DISK.DOC
- KillGVScreen release graphics VScreen memory GRAPHICS.DOC
- KillVScreen release VScreen memory VIDEO.DOC
- LastEdit option for LineEdit and GLineEdit INPUT.DOC
- LineEdit text-mode line editor INPUT.DOC
- LineFitF4 use Least Squares to fit a line to coordinates SOLVE.DOC
- LineFitF8 use Least Squares to fit a line to coordinates SOLVE.DOC
- LineFitI2 use Least Squares to fit a line to coordinates SOLVE.DOC
- LineFitI4 use Least Squares to fit a line to coordinates SOLVE.DOC
- LinePattern DrawLine and DrawBox option GRAPHICS.DOC
- LNG2Date uncompresses a date stored by Date2LNG DATA.DOC
- LNG2SNG long integer to floating point conversion DATA.DOC
- LNG2STR long integer to string conversion DATA.DOC
- LOcase converts text to lower case DATA.DOC
- MakeSUB creates a new subdirectory with error trapping DISK.DOC
- MakeGVScreen virtual Hercules screens for QLIB graphics GRAPHICS.DOC
- MakeVScreen virtual screens for quick video subroutines VIDEO.DOC
- MaskEdit edit string with fixed field(s) and delimiters INPUT.DOC
- MathChip find math coprocessor SYSTEM.DOC
-
- MaxDBLArray find maximum of double-precision array DATA.DOC
- MaxDBLb find maximum of multi-dimensioned array DATA.DOC
- MaxINTArray find maximum of integer array DATA.DOC
- MaxINTb find maximum of multi-dimensioned array DATA.DOC
- MaxLNGArray find maximum of long integer array DATA.DOC
- MaxLNGb find maximum of multi-dimensioned array DATA.DOC
- MaxSNGArray find maximum of single-precision array DATA.DOC
- MaxSNGb find maximum of multi-dimensioned array DATA.DOC
- MaxVSTRArray find longest in variable-length string array DATA.DOC (b)
- MinDBLArray find minimum of double-precision array DATA.DOC
- MinDBLb find minimum of multi-dimensioned array DATA.DOC
- MinINTArray find minimum of integer array DATA.DOC
- MinINTb find minimum of multi-dimensioned array DATA.DOC
- MinLNGArray find minimum of long integer array DATA.DOC
- MinLNGb find minimum of multi-dimensioned array DATA.DOC
- MinSNGArray find minimum of single-precision array DATA.DOC
- MinSNGb find minimum of multi-dimensioned array DATA.DOC
- MinVSTRArray find shortest in variable-length string array DATA.DOC (b)
- ModeColor switch to color text mode VIDEO.DOC
- ModeMono switch to monochrome monitor VIDEO.DOC
- Mode13225 switch to 132-column, 25-row mode VIDEO.DOC
- Mode13243 switch to 132-column, 43-row mode VIDEO.DOC
- Mode43 switch to EGA 43-row mode (VGA 50-row mode) VIDEO.DOC
- MonthName returns ASCII month name given month number DATA.DOC
- MouseLimit limit range of mouse motion SYSTEM.DOC
- MousePos position mouse cursor on the screen SYSTEM.DOC
- MouseReady determine if mouse is available SYSTEM.DOC
- MouseStatus returns mouse position and button status INPUT.DOC
- MovePOS moves the cursor by row and column offsets VIDEO.DOC
- MulCURArray multiply CURRENCY array by a constant DATA.DOC (a)
- MulCURb multiply CURRENCY array by a constant DATA.DOC (a)
- MulDBLArray multiply double-precision array by a constant DATA.DOC
- MulDBLb multiply double-precision array by a constant DATA.DOC
- MulINTArray multiply integer array by a constant DATA.DOC
- MulINTb multiply integer array by a constant DATA.DOC
- MulLNGArray multiply long integer array by a constant DATA.DOC
- MulLNGb multiply long integer array by a constant DATA.DOC
- MulSNGArray multiply single-precision array by a constant DATA.DOC
- MulSNGb multiply single-precision array by a constant DATA.DOC
- NetPValue calculate net present value SOLVE.DOC
- NoClock de-activates clock display VIDEO.DOC (b)
- NumOFF forces NumLock off SYSTEM.DOC
- NumON forces NumLock on SYSTEM.DOC
- PaintScreen quick complete color change, entire screen VIDEO.DOC
- PaintWindow quick complete color change, part of screen VIDEO.DOC
- Path$ returns the path in the program's enviornment SYSTEM.DOC
- Payment calculates periodic payment or capital recovery SOLVE.DOC
- PrinterError detect off-line or out-of-paper errors SYSTEM.DOC
- PrnScreenOFF disable Print Screen SYSTEM.DOC
- PrnScreenON enable Print Screen SYSTEM.DOC
- PullDown pull-down menu system for text modes INPUT.DOC (b)
- PutDot turn Graphics pixel on or off GRAPHICS.DOC
- PValue calculate present value of constant cash flow SOLVE.DOC
- QCenter centers a string on the screen VIDEO.DOC
- QPrint quick print to screen or virtual screen VIDEO.DOC
- QPrintCE quick print and clear to end of line VIDEO.DOC
- QPrintFArray quick print array of fixed-length strings VIDEO.DOC
- QPrintL quick print, lower case VIDEO.DOC
- QPrintU quick print, upper case VIDEO.DOC
- QPrintVArray quick print array of variable-length strings VIDEO.DOC
- QPrintW quick print with word wrap VIDEO.DOC
- QRead quick read from screen or virtual screen VIDEO.DOC
- QuadFitF4 use Least Squares to fit a curve to coordinates SOLVE.DOC
- QuadFitF8 use Least Squares to fit a curve to coordinates SOLVE.DOC
- QuadFitI2 use Least Squares to fit a curve to coordinates SOLVE.DOC
- QuadFitI4 use Least Squares to fit a curve to coordinates SOLVE.DOC
- Quadratic calculates the solutions of a quadratic equation SOLVE.DOC
-
- RAMsize determines installed base RAM SYSTEM.DOC
- ReadSShort read signed short integer from an array DATA.DOC
- ReadUShort read unsigned short integer from an array DATA.DOC
- Real2CPX form COMPLEX data from real & imaginary parts COMPLEX.DOC
- ReColorScreen quick selective color change, entire screen VIDEO.DOC
- ReColorWindow quick selective color change, part of screen VIDEO.DOC
- Rename renames a file, avoiding QB's ON ERROR DISK.DOC
- ReplaceString replace part of a string with another, any length DATA.DOC
- Scramble makes a string of text unreadable DATA.DOC
- ScreenDump prints Hercules graphics screen GRAPHICS.DOC
- ScreenRestore restores a screen saved by ScreenSave VIDEO.DOC
- ScreenRows determines the dimensions of the screen VIDEO.DOC
- ScreenSave copies screen to restore later VIDEO.DOC
- ScreenMem allocates memory required to store a screen VIDEO.DOC
- ScreenMode set text/graphics screen mode GRAPHICS.DOC
- Scroll BIOS screen scroll VIDEO.DOC
- ScrollOFF forces scroll lock off SYSTEM.DOC
- ScrollON forces scroll lock on SYSTEM.DOC
- SetBLINK disable/enable blinking attributes VIDEO.DOC
- SetArray1 set initial value of short integer array DATA.DOC
- SetArray1b set initial value of short integer array DATA.DOC
- SetArray2 set initial value of INTEGER array DATA.DOC
- SetArray2b set initial value of INTEGER array DATA.DOC
- SetArray4 set initial value of LONG or SINGLE array DATA.DOC
- SetArray4b set initial value of LONG or SINGLE array DATA.DOC
- SetArray8 set initial value of DOUBLE or CURRENCY array DATA.DOC
- SetArray8b set initial value of DOUBLE or CURRENCY array DATA.DOC
- SetDRIVE set default drive DISK.DOC
- SetFileAttr set file attributes DISK.DOC
- SetFileDate set file date and time DISK.DOC
- SetGBlock restores portion of graphics screen GRAPHICS.DOC
- SetKBDToggle set keyboard toggles SYSTEM.DOC
- SetPOS position the cursor on the screen VIDEO.DOC
- SetSpeed sets CPU speed on multi-speed computers SYSTEM.DOC
- SetSUB changes default subdirectory DISK.DOC
- SetView establish active graphics viewport GRAPHICS.DOC
- ShiftCUR shift the bits in an unsigned currency integer DATA.DOC (a)
- ShiftINT shift the bits in an unsigned integer DATA.DOC
- ShiftINTArray shift the bits in an unsigned integer array DATA.DOC
- ShiftLNG shift the bits in an unsigned long integer DATA.DOC
- ShiftLNGArray shift the bits in an unsigned long integer array DATA.DOC
- ShowGPage changes graph page visible on the screen GRAPHICS.DOC
- ShowGraphPlane select visible color plane in 16-color graphs GRAPHICS.DOC
- ShowMouse make mouse cursor visible INPUT.DOC
- ShowGMouse make alternate graphics mouse visible INPUT.DOC
- ShowTPage switch visible screen page (text mode) VIDEO.DOC
- SmallText GPrint and GLineEdit option GRAPHICS.DOC
- SNG2INT copies the integer portion of a! to a% DATA.DOC
- SNG2LNG copies the integer portion of a! to a& DATA.DOC
- SNG2STR SINGLE-to-string conversion with formatting DATA.DOC
- SnowOFF disable CGA "snow" control VIDEO.DOC
- SnowON enable CGA "snow" control (QLIB's default) VIDEO.DOC
-
- SortDBLArrayHI sort double-precision array from high to low DATA.DOC
- SortDBLArrayLO sort double-precision array from low to high DATA.DOC
- SortINTArrayHI sort integer array from high to low DATA.DOC
- SortINTArrayLO sort integer array from low to high DATA.DOC
- SortLNGArrayHI sort long integer array from high to low DATA.DOC
- SortLNGArrayLO sort long integer array from low to high DATA.DOC
- SortSNGArrayHI sort single-precision array from high to low DATA.DOC
- SortSNGArrayLO sort single-precision array from low to high DATA.DOC
- SortVSTRArrayHI sort variable-length string array from hi to low DATA.DOC
- SortVSTRArrayLO sort variable-length string array from low to hi DATA.DOC
- SortVSTRArrayHI2 case-insensetive string array sort DATA.DOC
- SortVSTRArrayLO2 case-insensetive string array sort DATA.DOC
- SShiftCUR shift bits in a signed currency integer DATA.DOC (a)
- SShiftINT shift bits in a signed integer DATA.DOC
- SShiftLNG shift bits in a signed long integer DATA.DOC
- SShiftINTArray shift bits in a signed integer array DATA.DOC
- SShiftLNGArray shift bits in a signed long integer array DATA.DOC
- StartEdit option for LineEdit and GLineEdit INPUT.DOC
- StdDevDBL calculates standard deviation of a DOUBLE array SOLVE.DOC
- StdDevINT calculates standard deviation of an INT array SOLVE.DOC
- StdDevLNG calculates standard deviation of a LONG array SOLVE.DOC
- StdDevSNG calculates standard deviation of a SINGLE array SOLVE.DOC
- StdText restores normal text size on graphics screen GRAPHICS.DOC
- strchr search a string for a specified character DATA.DOC
- StripChar removes specified characters from a string DATA.DOC
- SumDBLArray calculates the total of a double-precision array DATA.DOC
- SumINTArray calculates the total of an integer array DATA.DOC
- SumLNGArray calculates the total of a long integer array DATA.DOC
- SumSNGArray calculates the total of a single-precision array DATA.DOC
- Super13 320 x 400 256-color graphics mode for VGA GRAPHICS.DOC
- Super13a 360 x 480 256-color graphics mode for VGA GRAPHICS.DOC
- SVGA16 set SuperVGA 16-color modes GRAPHICS.DOC
- SVGA256 set SuperVGA 256-color modes GRAPHICS.DOC
- TCopy copies one screen page to another (text or Herc) VIDEO.DOC
- TLoad loads a disk file into video memory VIDEO.DOC
- TMouseStatus get mouse charcter position & buttons pressed INPUT.DOC
- TPage combines UseTPage and ShowTPage subroutines VIDEO.DOC
- TrimRight used to trim blanks off the end of a string DATA.DOC
- TSave saves a text-mode screen as a disk file VIDEO.DOC
- Today returns today's date DATA.DOC
- UCursorON places underscore cursor on text screen VIDEO.DOC
- UnScramble restores a string scrambled by Scramble DATA.DOC
- UPcase converts text to upper case DATA.DOC
- Use32k Hercules memory management GRAPHICS.DOC
- Use64k Hercules memory management GRAPHICS.DOC
- UseDefault causes QLIB to use system graphics mode GRAPHICS.DOC
- UseFont font definitions for QLIB graphics text GRAPHICS.DOC
- UseGPage change active graphics page GRAPHICS.DOC
- UseHerc causes QLIB to use Hercules graphics GRAPHICS.DOC
- UseTPage set active page in text mode VIDEO.DOC
- VertList vertical list menu system INPUT.DOC (b)
- VScroll quick vertical scroll of screen VIDEO.DOC
-
- WhichVGA finds VGAKIT-compatible equipment GRAPHICS.DOC
- WindowClear quick clear portion of screen VIDEO.DOC
- WindowEdit edit a string in a window on the screen INPUT.DOC
- WindowFill quickly fill a portion of a text-mode screen VIDEO.DOC
- WindowFrame quick window outline draw VIDEO.DOC
- WindowRestore restores portion of screen saved by WindowSave VIDEO.DOC
- WindowSave copies a portion of screen to restore later VIDEO.DOC
- WindowMem allocates memory needed to store screen VIDEO.DOC
- WLastEdit WindowEdit option INPUT.DOC
- WriteShort write a short integer to an array DATA.DOC
- WStartEdit WindowEdit option INPUT.DOC
- XMode16 Super EGA/VGA 16-color graphics GRAPHICS.DOC
- XMode16A Super EGA/VGA 16-color graphics GRAPHICS.DOC
- YesNo waits for "Y" or "N" key to be pressed INPUT.DOC
-
- (a) these subroutines work with BC7 and QBX only
-
- (b) these subroutines work only with QuickBASIC or BC7 without /FS option
-
-
-
- Several QLIB users have requested a cross-reference listing of QLIB
- object files in order to extract individual subroutines from the QLIB.LIB
- library file. I have begun to provide this information in the documentation
- for each subroutine. Since many QLIB subroutines call subroutines in
- other QLIB object modules, a cross reference list can become quite messy.
-
- The subroutine documentation may include lines like this:
-
- Subroutine: QPrint(a$, row%, col%, attr%)
- Object files: qprint.obj (crt.obj, q$qprn.obj)
-
- In this case, QPRINT's primary subroutine is in qprint.obj, and
- qprint.obj calls subroutines in crt.obj and in q$qprn.obj. All three
- object files must be extracted from QLIB.LIB if you want to extract
- QPRINT from the library.
-
- Use the LIB utility supplied by Microsoft with your compiler to extract
- the object files:
-
- LIB QLIB *qprint*crt*q$qprn;<enter>
-
- This command will copy the object files from the library to your disk.
-
-
- ----------------end-of-author's-documentation---------------
-
- Software Library Information:
-
- This disk copy provided as a service of
-
- Public (software) Library
-
- We are not the authors of this program, nor are we associated
- with the author in any way other than as a distributor of the
- program in accordance with the author's terms of distribution.
-
- Please direct shareware payments and specific questions about
- this program to the author of the program, whose name appears
- elsewhere in this documentation. If you have trouble getting
- in touch with the author, we will do whatever we can to help
- you with your questions. All programs have been tested and do
- run. To report problems, please use the form that is in the
- file PROBLEM.DOC on many of our disks or in other written for-
- mat with screen printouts, if possible. PsL cannot debug pro-
- programs over the telephone, though we can answer questions.
-
- Disks in the PsL are updated monthly, so if you did not get
- this disk directly from the PsL, you should be aware that the
- files in this set may no longer be the current versions. Also,
- if you got this disk from another vendor and are having prob-
- lems, be aware that some files may have become corrupted or
- lost by that vendor. Get a current, working disk from PsL.
-
- For a copy of the latest monthly software library newsletter
- and a list of the 3,000+ disks in the library, call or write
-
- Public (software) Library
- P.O.Box 35705 - F
- Houston, TX 77235-5705
-
- Orders only:
- 1-800-2424-PSL
- MC/Visa/AmEx/Discover
-
- Outside of U.S. or in Texas
- or for general information,
- Call 1-713-524-6394
-
- PsL also has an outstanding
- catalog for the Macintosh.
-
-